Several types of memory devices, such as Flash memories, use arrays of analog memory cells for storing data. The memory cells are programmed to respective predefined programming states or levels in accordance with the data being stored. For enhanced reliability, the data is typically encoded with some error correction code (ECC) before programmed to the memory cells, and decoded using the same ECC upon read from the memory cells. Retrieving data from the memory typically involves reading the memory cells using one or more reading-thresholds. Setting the reading-thresholds accurately is important for achieving low readout error rate.
Various techniques for setting the reading-thresholds and other read parameters for reading analog memory cells are known in the art. For example, U.S. Pat. No. 8,156,398, whose disclosure is incorporated herein by reference, describes a method for operating a memory, which includes analog memory cells, the method includes encoding data with an Error Correction Code (ECC) that is representable by a plurality of equations. The encoded data is stored in a group of the analog memory cells by writing respective input storage values to the memory cells in the group. Multiple sets of output storage values are read from the memory cells in the group using one or more different, respective read parameters for each set. Numbers of the equations, which are satisfied by the respective sets of the output storage values, are determined. A preferred setting of the read parameters is identified responsively to the respective numbers of the satisfied equations. The memory is operated on using the preferred setting of the read parameters.
As another example, U.S. Pat. No. 8,869,008, whose disclosure is incorporated herein by reference, describes a method including storing data that is encoded with an Error Correction Code (ECC) in a group of analog memory cells. The memory cells in the group are read using multiple sets of read thresholds. The memory cells in the group are divided into two or more subsets. N partial syndromes of the ECC are computed, each partial syndrome computed over readout results that were read using a respective set of the read thresholds from a respective subset of the memory cells. For each possible N-bit combination of N bit values at corresponding bit positions in the N partial syndromes, a respective count of the bit positions in which the combination occurs is determined, so as to produce a plurality of counts. An optimal set of read thresholds is calculated based on the counts, and data recovery is performed using the optimal read thresholds.
U.S. Pat. No. 8,508,995, whose disclosure is incorporated herein by reference, describes a system and method for adjusting read threshold voltage values, for example, in a read circuit internal to a memory device. The quality of an associated read result may be estimated for each read threshold voltage value used to read memory cells. Only read results estimated to have sufficient quality may be allowed to pass to storage. The read threshold voltage value may be adjusted for subsequent read operations, for example, if the associated read result is estimated to have insufficient quality. The read threshold voltage value may be iteratively adjusted, for example, until a read result is estimated to have sufficient quality.